#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Python数据类型演示
1. 变量声明
- 基本类型：整数、浮点数、字符串、布尔值
- 容器类型：列表、元组、字典、集合
- 其他类型：字节、None

2. 类型打印
- 使用 type() 函数获取类型名称
- 格式化输出变量值和类型

3. 类型转换
- 合法转换：整数↔字符串、列表→元组
- 异常处理：无效字符串转整数
"""

# 1. 变量声明
print("=== 变量声明 ===")

# 基本数据类型
integer_var = 42
float_var = 3.14
string_var = "Hello Python"
bool_var = True

# 容器类型
list_var = [1, 2, 3]
tuple_var = (4, 5, 6)
dict_var = {"name": "张三", "age": 20}
set_var = {7, 8, 9}

# 其他类型
bytes_var = b"bytes"
none_var = None

# 2. 打印变量类型
print("\n=== 类型打印 ===")
variables = [integer_var, float_var, string_var, bool_var, 
             list_var, tuple_var, dict_var, set_var, 
             bytes_var, none_var]

for var in variables:
    print(f"{var!r:20} → {type(var).__name__}")

# 3. 类型转换案例
print("\n=== 类型转换 ===")

# 合法转换
int_to_str = str(integer_var)
str_to_int = int("100")
list_to_tuple = tuple(list_var)

# 危险转换（带异常处理）
try:
    invalid_conversion = int("abc")
except ValueError as e:
    print(f"转换错误: {e}")

# 打印转换结果
print(f"整数转字符串: {int_to_str} ({type(int_to_str).__name__})")
print(f"字符串转整数: {str_to_int} ({type(str_to_int).__name__})")
print(f"列表转元组: {list_to_tuple} ({type(list_to_tuple).__name__})")

print("\n=== 执行完成 ===")